greatcfandomcom-20200214-history
GREAT C Blueprint
Blueprint for GREAT Computing General Purpose Computers have a tendency to be unreliable and the software running on them is of relatively poor quality. There is no intrinsic reason that general puprose computers should be like this. JasonCozens 15:28, November 2, 2009 (UTC) To build reliable computing systems, two things are needed a reliable platform on which to build and a process for creating reliable systems based on this platform. This gives rise to the two main areas of this wiki, research into reliable operating systems and the development of a process for creating reliable systems. It is believed that the development of a process for creating reliable systems is largely a matter of education based on existing mathematics and engineering practices. Aims The aim of GREAT Computing is to be able to guarantee systems/products that contain computing components. A good guarantee is one that offers the customer confidence in the quality of the product that they are receiving. Good guarantees rely on products being reliable and predictable therefore a major concern of GREAT Computing is reliability. Another major concern today is power consumption of computing equipment. In the design of GREAT Computing efficiency must be of paramount importance. The design for reliability must also create efficient and low power consumption systems. The most reliable and efficient products will not be used if they are too expensive. A third constraint on the guarantees is that they should produce systems that are competitive with systems developed using less stringent goals. Ideally guaranteed systems should be cheaper than existing systems. At present in the software world many components/APIs are delivered as "suck it and see" systems. The component/API is delivered with some documentation some examples and little else. When building systems it is often necessary to second guess and mock out third party components/APIs. A by-product of great computing is that components should come with models supplied by the producer. These models should allow components to become testable as part of larger designs. Software's "Switching Theory" (Working Title) Using time sharing to maximize processor usage has analogies to designing microprocessors to minimize the number of gates using switching theory as the basis for design. The architecture of modern general purpose operating systems is being designed on outmoded assumptions. In relation to microprocessor design Mead and Conway observed that: Now want something like: There are historical reasons for the extensive use of time sharing within operating systems. The first computers produced were extremely expensive and it was important to keep them busy. Key Components The key components for the implementation of GREAT Computing are: * Computing Systems Development Toolkit * Education for Proof Based Design * Research Bug Free Computing There is a prevailing attitude in computing that computer systems are expected to have bugs and this is acceptable. The term bug is confusing as it is all encompassing and includes issues with the software not meeting users requirements and also code that is incorrect. In GREAT Computing the term bug will not be used. Instead the terms Issues, Faults and Inconsistencies will be used. * An Issue is a failure in understanding requirements. Issues occur in going from the informal to the formal. * A Fault is where an implementation does not implement a formal specification. * An Inconsistency is where a formal definition is inconsistent. In the majority of general purpose software at present Issues and Faults are often confused and both are wrapped up in the term Bug. To a software developer if something is wrong in a delivered system the term bug will mean issue. The software developer will argue that the customer failed to include an important requirement. By using this argument the software developer saves face and the cost of fixing the bug is left with the customer. To a customer if something is wrong in a delivered system the term bug will mean fault. The customer will argue that the software developer incorrectly impemented a requirement. By using this argument the customer saves face and the cost of fixing the bug is left with the software developer. Structure of the Site The site is structured around References. It is intended that the site is evidence based both on its own work and the work of others. Operating system design is the major area of research. Category:Blueprint Category:Research